package stringbuilder;

/*
常用的成员方法:
int length() : 长度获取(sb中的字符数量)
int capacity() : 容量
StringBuilder append(任意类型的数据): 把传入的数据拼接到原sb对象上,并返回对象自己
     //字符串的拼接非常消耗内存 : "Hello"+"World"+"Java" -> 内存中有5个字符串对象
         StringBuilder reverse()  : 一键翻转并返回自己
         String toString():把sb对象转换成字符串对象
         char charAt(int index) : 获取指定索引位置的字符
         int indexOf(String str) : 找到传入字符串在sb对象中第一次出现的索引位置
         int lastIndexOf(String str) : 找到传入字符串在sb对象中最后一次出现的索引位置
         String substring(int start) : 截取
         String substring(int start, int end)  : 范围截取 [start,end)

 */

import java.util.Random;

public class StringBuilderDemo1 {

    public static void main(String[] args) {
        StringBuilder sb = new StringBuilder("Hello");
        System.out.println("sb = " + sb);//Hello

        System.out.println("sb.length() = " + sb.length());//5
        System.out.println("sb.capacity() = " + sb.capacity());//21


//        StringBuilder sb1 = sb.append("World");
//        System.out.println("sb = " + sb);//HelloWorld
//        System.out.println("sb1 = " + sb1);//HelloWorld
//        System.out.println(sb == sb1);
        //链式编程: 对象调方法后得到的是什么类型的对象,这个对象还可以干嘛!
        sb.append("World").append(100).append(true).append(new Random()).append(sb);
        System.out.println("sb = " + sb);

        sb.reverse();
        System.out.println("sb = " + sb);

        System.out.println("sb.substring(0,5) = " + sb.substring(0, 5));
    }
}
